<?php
/**
 * db pooling
 * @package common_lib_db
 */
/**
 * db pooling
 * @author pandajingjing
 * @package common_lib_db
 */
class db_pooling{

	/**
	 * 数据库连接池实例
	 * @var object
	 */
	private static $_objInstance=NULL;

	/**
	 * 数据库连接池
	 * @var array
	 */
	private static $_arrConnect=array();

	/**
	 * 构造函数
	 */
	private function __construct(){

	}

	/**
	 * 析构函数
	 */
	function __destruct(){

	}

	/**
	 * 构造函数
	 */
	private function __clone(){

	}

	/**
	 * 获取实例
	 * @return object
	 */
	static function getInstance(){
		if(!(self::$_objInstance instanceof self)){
			self::$_objInstance=new self();
		}
		return self::$_objInstance;
	}

	/**
	 * 获取数据库连接
	 * @param string $p_strDBName
	 * @return object
	 */
	static function getConnect($p_strDBName){
		if(!isset(self::$_arrConnect[$p_strDBName])){
			self::$_arrConnect[$p_strDBName]=self::_loadDB($p_strDBName);
		}
		return self::$_arrConnect[$p_strDBName];
	}

	/**
	 * 加载数据库连接
	 * @param string $p_strDBName
	 * @return object
	 */
	private static function _loadDB($p_strDBName){
		load_lib('/db/pdo');
		$arrConfig=get_config($p_strDBName,'database');
		$objDatabase=new db_pdo($arrConfig['dsn'],$arrConfig['username'],$arrConfig['userpwd']);
		foreach($arrConfig['initsql'] as $strSQL){
			$objDatabase->exec($strSQL);
		}
		return $objDatabase;
	}
}